Skip to content

docs(governance): Common scorecard #9 to M4 after in-repo contract-surface gates - #122

Merged
ivanball merged 1 commit into
mainfrom
docs/common-s9-m4
Aug 22, 2026
Merged

docs(governance): Common scorecard #9 to M4 after in-repo contract-surface gates#122
ivanball merged 1 commit into
mainfrom
docs/common-s9-m4

Conversation

@ivanball

Copy link
Copy Markdown
Owner

MMCA.Common PR #271 (squash 8a6c603) landed both halves of the long-open #9 backlog item in-repo, so the rubric M4 bar ("enforced automatically (analyzers/tests/CI)") is met for API & Contract Design:

  • OpenAPI committed-baseline diff. OpenApiBaselineTests.cs:45-77 boots a probe host through the real AddCommonOpenApi/MapCommonOpenApi pipeline, normalizes /openapi/v1.json and fails against the committed openapi-baseline.v1.json; regeneration is gated behind MMCA_UPDATE_OPENAPI_BASELINE=1 in the same pull request. Scoped to the framework-owned surface by design: each consumer host keeps guarding its concrete surface (for example ADC's OpenApiContractTests).
  • [ServiceContract] purity fitness rule. ArchitectureRules.Contracts.cs:32 + Bases/ServiceContractPurityTestsBase.cs:24-26, subclassed at ServiceContractPurityTests.cs:11; fails the build, naming the offending type, when a marked contract depends on a mapped Domain/Application/Infrastructure namespace. Vacuous in Common today (no type carries the attribute), documented as a ratchet.

Both test projects sit in MMCA.Common.slnx, so both run in the CI-gated unit tier. Consumers ADC and Store are already M4 for #9; this brings Common level with them.

Changes:

  • common-ArchitectureScorecard.md: docs: ADR audit 2026-07-23 - refresh 9 drifted ADRs, add ADR-051 #9 row Maturity 3 to 4, weighted 6/18 to 8/18, evidence cell rewritten to state both automatic gates with path:line. Maturity index 314 to 316 / 324 (96.9% to 97.5%); Implementation unchanged at 687/810 (84.8%); weaker-axis gap ~12.1 to ~12.7 points. The docs: ADR audit 2026-07-23 - refresh 9 drifted ADRs, add ADR-051 #9 risk entry is closed in place with its resolution (no renumbering of the surviving entries), matching how risk 5 was handled.
  • common-RemediationBacklog.md: docs: ADR audit 2026-07-23 - refresh 9 drifted ADRs, add ADR-051 #9 closed to the level-4 protect list with a dated closure note, plus a Progress section for the wave. Follow-up recorded: consumer subclassing of ServiceContractPurityTestsBase (and optional [ServiceContract] adoption on the seven *.Contracts projects) rides the next release sweep.
  • docs/ regenerated via cd tools && npm run build (157 pages, no dead cross-links); platform.html scorecard meter picks up 97.5%.

🤖 Generated with Claude Code

https://claude.ai/code/session_016usKhixm2drfHmwmmmqwbn

…rface gates (Common PR #271)

MMCA.Common PR #271 (squash 8a6c603) landed both halves of the #9 backlog
item in-repo: an OpenAPI committed-baseline diff over the framework-owned
generated surface, and a dedicated [ServiceContract] purity fitness rule.
That meets the rubric M4 bar (enforced automatically by tests/CI), so #9
rises Maturity 3 to 4 (weighted 6/18 to 8/18).

Maturity index 314 to 316 / 324 (96.9% to 97.5%); Implementation unchanged
at 687/810 (84.8%). The #9 scorecard risk entry is closed in place with its
resolution (no renumbering), and the backlog item is closed to the level-4
protect list with a follow-up: consumer subclassing of
ServiceContractPurityTestsBase rides the next release sweep.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016usKhixm2drfHmwmmmqwbn
@ivanball
ivanball merged commit 43574af into main Aug 22, 2026
3 checks passed
@ivanball
ivanball deleted the docs/common-s9-m4 branch August 22, 2026 18:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant